/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NovoProjetoView.java
 *
 * Created on 19/06/2011, 12:42:01
 */
package calculadorfpa.applications.projetomelhoria.resources;

import calculadorfpa.applications.novoprojeto.*;
import calculadorfpa.CalculadorFPAView;
import calculadorfpa.applications.consultaprojeto.ConsultaProjetosView;
import calculadorfpa.exception.MyFPAException;

import calculadorfpa.modelo.ArquivoInterfaceExterna;
import calculadorfpa.modelo.ArquivoLogicoInterno;
import calculadorfpa.modelo.CaracteristicaGeral;
import calculadorfpa.modelo.ConsultaExterna;
import calculadorfpa.modelo.DescricaoComplexidadeHelper;
import calculadorfpa.modelo.EntradaExterna;
import calculadorfpa.modelo.Funcao;
import calculadorfpa.modelo.FuncaoDados;
import calculadorfpa.modelo.FuncaoTransacional;
import calculadorfpa.modelo.NivelInfluencia;
import calculadorfpa.modelo.Projeto;
import calculadorfpa.modelo.ProjetoMelhoria;
import calculadorfpa.modelo.SaidaExterna;
import calculadorfpa.tablemodels.TableModelRelatorio;
import calculadorfpa.util.EnumerationUtil;
import calculadorfpa.util.FormatUtil;
import calculadorfpa.util.MyFPAUtil;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import javax.swing.JOptionPane;

/**
 *
 * @author TECBMEPI
 */
public class ProjetoMelhoriaView extends javax.swing.JPanel {

    // Funções de dados
    private List<Funcao> listaFuncoesALIDados = new LinkedList<Funcao>();
    private List<Funcao> listaFuncoesAIEDados = new LinkedList<Funcao>();
    private int chaveGrupoDados = 1;
    // Funções transacionais
    private List<Funcao> listaFuncoesSE = new LinkedList<Funcao>();
    private List<Funcao> listaFuncoesCE = new LinkedList<Funcao>();
    private List<Funcao> listaFuncoesEE = new LinkedList<Funcao>();
    private int chaveGrupoTransacionais = 1;
    private ProjetoMelhoria projeto;
    private ProjetoMelhoria projetoParaSalvar;
    private Projeto projetoBase;
    private List<Funcao> listaFuncoesALIExistentes = new LinkedList<Funcao>();
    private List<Funcao> listaFuncoesAIEExistentes = new LinkedList<Funcao>();
    // Funções transacionais
    private List<Funcao> listaFuncoesSEExistentes = new LinkedList<Funcao>();
    private List<Funcao> listaFuncoesCEExistentes = new LinkedList<Funcao>();
    private List<Funcao> listaFuncoesEEExistentes = new LinkedList<Funcao>();

    /** Creates new form NovoProjetoView */
    public ProjetoMelhoriaView(Projeto projetoBase, ProjetoMelhoria projeto) {
        CalculadorFPAView.frameView.setTitle("Projeto de Melhoria");
        initComponents();
        tabPanelNovoProjeto.setEnabledAt(4, false);
        this.projetoBase = projetoBase;
        
        if (projeto == null) {
            projeto = new ProjetoMelhoria(projetoBase);
            txtNomeProjeto.setText(projetoBase.getNome() + " (Melhoria)");
            txtValorPontoFuncao.setText(Double.toString(projetoBase.getPontoFuncao()));
            preencherCaracteristicasGerais(projetoBase);
            preencherFuncoesBase(projetoBase);
            this.projeto = projeto;
        } else {
            projetoParaSalvar = projeto;
            //this.projeto = (Projeto)projetoParaSalvar.clone();
            txtNomeProjeto.setText(projeto.getNome());
            txtValorPontoFuncao.setText(Double.toString(projeto.getPontoFuncao()));

            preencherCaracteristicasGerais(projeto);
            preencherFuncoes(projeto);
        }
    }

    private void preencherCaracteristicasGerais(Projeto projeto) {
        cboAtualizacaoOnline.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.ATUALIZACAO_ONLINE)));
        cboComplexidadeDeProcessamento.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.COMPLEXIDADE_DE_PROCESSAMENTO)));
        cboComunicacaoDeDados.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.COMUNICACAO_DE_DADOS)));
        cboDesempenho.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.DESEMPENHO)));
        cboEficienciaDoUsuarioFinal.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.EFICIENCIA_DO_USUARIO_FINAL)));
        cboEntradaDeDadosOnline.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.ENTRADA_DE_DADOS_ONLINE)));
        cboFacilidadeDeMudancas.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.FACILIDADE_DE_MUDANCAS)));
        cboFacilidadeInstalacao.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.FACILIDADE_DE_INSTALACAO)));
        cboFacilidadeOperacao.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.FACILIDADE_DE_OPERACAO)));
        cboMultiplasLocalidades.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.MULTIPLAS_LOCALIDADES)));
        cboProcessamentoDeDados.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.PROCESSAMENTO_DE_DADOS_DISTRIBUIDO)));
        cboReutilizacao.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.REUTILIZACAO)));
        cboUtilizacaoDoEquipamento.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.UTILIZACAO_DO_EQUIPAMENTO)));
        cboVolumeDeTransacoes.setSelectedIndex(EnumerationUtil.getValueByNivelInfluencia(projeto.getCaracteristicasGerais().get(CaracteristicaGeral.VOLUME_DE_TRANSACOES)));
    }

    private void preencherFuncoes(Projeto projeto) {
        this.listaFuncoesAIEDados = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), ArquivoInterfaceExterna.class);
        listaAIE.setListData(getModelFromList(listaFuncoesAIEDados));

        this.listaFuncoesALIDados = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), ArquivoLogicoInterno.class);
        listaALI.setListData(getModelFromList(listaFuncoesALIDados));

        this.listaFuncoesSE = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), SaidaExterna.class);
        listSE.setListData(getModelFromList(listaFuncoesSE));

        this.listaFuncoesCE = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), ConsultaExterna.class);
        listCE.setListData(getModelFromList(listaFuncoesCE));

        this.listaFuncoesEE = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), EntradaExterna.class);
        listEE.setListData(getModelFromList(listaFuncoesEE));
    }

    private void preencherFuncoesBase(Projeto projeto) {
        this.listaFuncoesAIEExistentes = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), ArquivoInterfaceExterna.class);
        listaAIEExistente.setListData(getModelFromList(listaFuncoesAIEExistentes));

        this.listaFuncoesALIExistentes = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), ArquivoLogicoInterno.class);
        listaALIExistente.setListData(getModelFromList(listaFuncoesALIExistentes));

        /*this.listaFuncoesSEExistentes = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), SaidaExterna.class);
        listSEExistente.setListData(getModelFromList(listaFuncoesSEExistentes));
        
        this.listaFuncoesCEExistentes = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), ConsultaExterna.class);
        listCE.setListData(getModelFromList(listaFuncoesCEExistentes));
        
        this.listaFuncoesEEExistentes = MyFPAUtil.filtraLista(projeto.getListaFuncoes(), EntradaExterna.class);
        listEE.setListData(getModelFromList(listaFuncoesEEExistentes));*/
    }

    private String[] getModelFromList(List lista) {
        String[] array = new String[lista.size()];
        for (int i = 0; i < array.length; i++) {
            Object obj = lista.get(i);
            if (obj instanceof FuncaoDados) {
                FuncaoDados f = (FuncaoDados) lista.get(i);
                array[i] = f.getNome() + "(" + f.getTipoDados() + "," + f.getTipoRegistro() + ")";
            } else {
                FuncaoTransacional f = (FuncaoTransacional) lista.get(i);
                array[i] = f.getNome() + "(" + f.getTipoDados() + "," + f.getArquivoReferenciado() + ")";
            }
        }
        return array;
    }

    private String[] getModelFromListRelatorio(List lista) {
        String[] array = new String[lista.size()];
        for (int i = 0; i < array.length; i++) {
            Object obj = lista.get(i);
            if (obj instanceof FuncaoDados) {
                FuncaoDados f = (FuncaoDados) lista.get(i);
                array[i] = f.getNome() + "(" + f.getTipoDados() + "," + f.getTipoRegistro() + ") - " + DescricaoComplexidadeHelper.obterDescricaoComplexidade(f.obterComplexidade(), f.getClass()) + " = " + f.obterComplexidade();
            } else {
                FuncaoTransacional f = (FuncaoTransacional) lista.get(i);
                array[i] = f.getNome() + "(" + f.getTipoDados() + "," + f.getArquivoReferenciado() + ") - " + DescricaoComplexidadeHelper.obterDescricaoComplexidade(f.obterComplexidade(), f.getClass()) + " = " + f.obterComplexidade();
            }
        }
        return array;
    }

    private void populaRelatorio() {

        // Nome projeto
        txtRelatorioNomeProjeto.setText(projeto.getNome());

        // Popula listas
        listaRelatorioALI.setListData(getModelFromListRelatorio(listaFuncoesALIDados));
        listaRelatorioAIE.setListData(getModelFromListRelatorio(listaFuncoesAIEDados));
        listaRelatorioCE.setListData(getModelFromListRelatorio(listaFuncoesCE));
        listaRelatorioSE.setListData(getModelFromListRelatorio(listaFuncoesSE));
        listaRelatorioEE.setListData(getModelFromListRelatorio(listaFuncoesEE));

        // Popula campos de texto
        txtRelatorioPFB.setText("" + projeto.getPontoFuncaoBruto());
        txtRelatorioNI.setText("" + projeto.getNivelInfluencia());
        txtRelatorioFA.setText("" + FormatUtil.arredondarValor(projeto.getFatorAjuste()));
        txtRelatorioPFA.setText("" + FormatUtil.arredondarValor(projeto.getPontoFuncaoAjustado()));
        txtRelatorioPF.setText("" + FormatUtil.arredondarValor(projeto.getPontoFuncao()));
        txtRelatorioPrazo.setText("" + FormatUtil.arredondarValor(projeto.getPrazo()));

        // Popula tabela
        tableInfluencia.setModel(new TableModelRelatorio(projeto.getCaracteristicasGerais()));
        tabPanelNovoProjeto.setSelectedIndex(4);

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        btnGroupFuncoesDados = new javax.swing.ButtonGroup();
        btnGroupFuncoesTransacionais = new javax.swing.ButtonGroup();
        tabPanelNovoProjeto = new javax.swing.JTabbedPane();
        painelGeral = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        txtValorPontoFuncao = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        txtNomeProjeto = new javax.swing.JTextField();
        jLabel47 = new javax.swing.JLabel();
        txtFuncoesConversao = new javax.swing.JTextField();
        painelFuncoesDados = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        txtTipoRegistroFuncaoDados = new javax.swing.JTextField();
        jRadioButton1 = new javax.swing.JRadioButton();
        jLabel3 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jRadioButton2 = new javax.swing.JRadioButton();
        jLabel5 = new javax.swing.JLabel();
        txtTipoDadosFuncaoDados = new javax.swing.JTextField();
        btnAdicionarFuncaoDados = new javax.swing.JButton();
        txtNomeFuncaoDados = new javax.swing.JTextField();
        jPanel7 = new javax.swing.JPanel();
        jLabel30 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        listaALI = new javax.swing.JList();
        jScrollPane2 = new javax.swing.JScrollPane();
        listaAIE = new javax.swing.JList();
        btnExcluirAIE = new javax.swing.JButton();
        jLabel29 = new javax.swing.JLabel();
        btnExcluirALI = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        jLabel48 = new javax.swing.JLabel();
        jScrollPane13 = new javax.swing.JScrollPane();
        listaALIExistente = new javax.swing.JList();
        jLabel49 = new javax.swing.JLabel();
        jScrollPane14 = new javax.swing.JScrollPane();
        listaAIEExistente = new javax.swing.JList();
        jLabel50 = new javax.swing.JLabel();
        jScrollPane15 = new javax.swing.JScrollPane();
        listaALIRemovidas = new javax.swing.JList();
        jLabel51 = new javax.swing.JLabel();
        jScrollPane16 = new javax.swing.JScrollPane();
        listaAIERemovidas = new javax.swing.JList();
        jLabel52 = new javax.swing.JLabel();
        txtTipoDadosALIAlterar = new javax.swing.JTextField();
        jLabel53 = new javax.swing.JLabel();
        txtTipoRegistroALIAlterar = new javax.swing.JTextField();
        btnAlterarALI = new javax.swing.JButton();
        btnRemoverALI = new javax.swing.JButton();
        btnVoltarALI = new javax.swing.JButton();
        btnVoltarAIE = new javax.swing.JButton();
        btnRemoverAIE = new javax.swing.JButton();
        btnAlterarAIE = new javax.swing.JButton();
        txtTipoDadosAIEAlterar = new javax.swing.JTextField();
        jLabel54 = new javax.swing.JLabel();
        jLabel55 = new javax.swing.JLabel();
        txtTipoRegistroAIEAlterar = new javax.swing.JTextField();
        painelFuncoesTransacionais = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        jRadioButton4 = new javax.swing.JRadioButton();
        jRadioButton3 = new javax.swing.JRadioButton();
        jLabel10 = new javax.swing.JLabel();
        txtArquivoReferenciadoFuncaoTransacional = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jButton9 = new javax.swing.JButton();
        jLabel9 = new javax.swing.JLabel();
        txtNomeFuncaoTransacional = new javax.swing.JTextField();
        jRadioButton5 = new javax.swing.JRadioButton();
        txtTipoDadoFuncaoTransacional = new javax.swing.JTextField();
        jPanel9 = new javax.swing.JPanel();
        jLabel31 = new javax.swing.JLabel();
        jScrollPane5 = new javax.swing.JScrollPane();
        listEE = new javax.swing.JList();
        jScrollPane4 = new javax.swing.JScrollPane();
        listSE = new javax.swing.JList();
        btnExcluirEE = new javax.swing.JButton();
        btnExcluirCE = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        listCE = new javax.swing.JList();
        bntExcluirSE = new javax.swing.JButton();
        jLabel33 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        painelCaracteristicasGerais = new javax.swing.JPanel();
        jPanel10 = new javax.swing.JPanel();
        jLabel22 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        cboUtilizacaoDoEquipamento = new javax.swing.JComboBox();
        jLabel26 = new javax.swing.JLabel();
        cboFacilidadeDeMudancas = new javax.swing.JComboBox();
        jLabel23 = new javax.swing.JLabel();
        btnCalcularProjeto = new javax.swing.JButton();
        jLabel21 = new javax.swing.JLabel();
        cboAtualizacaoOnline = new javax.swing.JComboBox();
        jLabel15 = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jLabel17 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        cboFacilidadeInstalacao = new javax.swing.JComboBox();
        cboEntradaDeDadosOnline = new javax.swing.JComboBox();
        cboComplexidadeDeProcessamento = new javax.swing.JComboBox();
        cboMultiplasLocalidades = new javax.swing.JComboBox();
        cboProcessamentoDeDados = new javax.swing.JComboBox();
        jLabel28 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        cboEficienciaDoUsuarioFinal = new javax.swing.JComboBox();
        jLabel27 = new javax.swing.JLabel();
        cboDesempenho = new javax.swing.JComboBox();
        cboReutilizacao = new javax.swing.JComboBox();
        cboVolumeDeTransacoes = new javax.swing.JComboBox();
        cboComunicacaoDeDados = new javax.swing.JComboBox();
        cboFacilidadeOperacao = new javax.swing.JComboBox();
        jLabel25 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        jPanel5 = new javax.swing.JPanel();
        jScrollPane6 = new javax.swing.JScrollPane();
        panelRelatorio = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jLabel34 = new javax.swing.JLabel();
        jLabel35 = new javax.swing.JLabel();
        jScrollPane9 = new javax.swing.JScrollPane();
        listaRelatorioAIE = new javax.swing.JList();
        jScrollPane7 = new javax.swing.JScrollPane();
        listaRelatorioALI = new javax.swing.JList();
        jPanel4 = new javax.swing.JPanel();
        jLabel36 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        jScrollPane8 = new javax.swing.JScrollPane();
        listaRelatorioSE = new javax.swing.JList();
        jScrollPane10 = new javax.swing.JScrollPane();
        listaRelatorioEE = new javax.swing.JList();
        jLabel38 = new javax.swing.JLabel();
        jScrollPane11 = new javax.swing.JScrollPane();
        listaRelatorioCE = new javax.swing.JList();
        jLabel39 = new javax.swing.JLabel();
        txtRelatorioPFB = new javax.swing.JTextField();
        jScrollPane12 = new javax.swing.JScrollPane();
        tableInfluencia = new javax.swing.JTable();
        jPanel11 = new javax.swing.JPanel();
        txtRelatorioPFA = new javax.swing.JTextField();
        txtRelatorioNI = new javax.swing.JTextField();
        txtRelatorioFA = new javax.swing.JTextField();
        jLabel40 = new javax.swing.JLabel();
        jLabel42 = new javax.swing.JLabel();
        txtRelatorioPF = new javax.swing.JTextField();
        jLabel43 = new javax.swing.JLabel();
        jLabel44 = new javax.swing.JLabel();
        btnSalvarProjeto = new javax.swing.JButton();
        txtRelatorioPrazo = new javax.swing.JTextField();
        jLabel41 = new javax.swing.JLabel();
        jLabel46 = new javax.swing.JLabel();
        jLabel45 = new javax.swing.JLabel();
        txtRelatorioNomeProjeto = new javax.swing.JTextField();

        setName("Form"); // NOI18N

        tabPanelNovoProjeto.setName("tabPanelNovoProjeto"); // NOI18N

        painelGeral.setName("painelGeral"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(calculadorfpa.CalculadorFPAApp.class).getContext().getResourceMap(ProjetoMelhoriaView.class);
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel2.border.title"))); // NOI18N
        jPanel2.setName("jPanel2"); // NOI18N

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        txtValorPontoFuncao.setName("txtValorPontoFuncao"); // NOI18N

        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        txtNomeProjeto.setText(resourceMap.getString("txtNomeProjeto.text")); // NOI18N
        txtNomeProjeto.setName("txtNomeProjeto"); // NOI18N

        jLabel47.setText(resourceMap.getString("jLabel47.text")); // NOI18N
        jLabel47.setName("jLabel47"); // NOI18N

        txtFuncoesConversao.setText(resourceMap.getString("txtFuncoesConversao.text")); // NOI18N
        txtFuncoesConversao.setName("txtFuncoesConversao"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel1)
                    .addComponent(jLabel47))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(txtFuncoesConversao, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtNomeProjeto, javax.swing.GroupLayout.PREFERRED_SIZE, 349, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtValorPontoFuncao, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(61, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(txtNomeProjeto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtValorPontoFuncao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel47)
                    .addComponent(txtFuncoesConversao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(31, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout painelGeralLayout = new javax.swing.GroupLayout(painelGeral);
        painelGeral.setLayout(painelGeralLayout);
        painelGeralLayout.setHorizontalGroup(
            painelGeralLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelGeralLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(491, Short.MAX_VALUE))
        );
        painelGeralLayout.setVerticalGroup(
            painelGeralLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelGeralLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(630, Short.MAX_VALUE))
        );

        tabPanelNovoProjeto.addTab(resourceMap.getString("painelGeral.TabConstraints.tabTitle"), painelGeral); // NOI18N

        painelFuncoesDados.setName("painelFuncoesDados"); // NOI18N

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel6.border.title"))); // NOI18N
        jPanel6.setName("jPanel6"); // NOI18N

        txtTipoRegistroFuncaoDados.setName("txtTipoRegistroFuncaoDados"); // NOI18N

        btnGroupFuncoesDados.add(jRadioButton1);
        jRadioButton1.setSelected(true);
        jRadioButton1.setText(resourceMap.getString("jRadioButton1.text")); // NOI18N
        jRadioButton1.setName("jRadioButton1"); // NOI18N
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1ActionPerformed(evt);
            }
        });

        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N
        jLabel6.setName("jLabel6"); // NOI18N

        jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N
        jLabel4.setName("jLabel4"); // NOI18N

        btnGroupFuncoesDados.add(jRadioButton2);
        jRadioButton2.setText(resourceMap.getString("jRadioButton2.text")); // NOI18N
        jRadioButton2.setName("jRadioButton2"); // NOI18N
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2ActionPerformed(evt);
            }
        });

        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        txtTipoDadosFuncaoDados.setName("txtTipoDadosFuncaoDados"); // NOI18N

        btnAdicionarFuncaoDados.setText(resourceMap.getString("btnAdicionarFuncaoDados.text")); // NOI18N
        btnAdicionarFuncaoDados.setName("btnAdicionarFuncaoDados"); // NOI18N
        btnAdicionarFuncaoDados.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                adicionarFuncaoDados(evt);
            }
        });

        txtNomeFuncaoDados.setText(resourceMap.getString("txtNomeFuncaoDados.text")); // NOI18N
        txtNomeFuncaoDados.setName("txtNomeFuncaoDados"); // NOI18N

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel3)
                    .addComponent(txtNomeFuncaoDados, javax.swing.GroupLayout.PREFERRED_SIZE, 201, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(btnAdicionarFuncaoDados)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(jRadioButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton2))
                    .addComponent(txtTipoDadosFuncaoDados, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5)
                    .addComponent(txtTipoRegistroFuncaoDados, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel6))
                .addContainerGap())
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtNomeFuncaoDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jRadioButton2)
                    .addComponent(jRadioButton1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtTipoDadosFuncaoDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtTipoRegistroFuncaoDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnAdicionarFuncaoDados)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel7.border.title"))); // NOI18N
        jPanel7.setName("jPanel7"); // NOI18N

        jLabel30.setText(resourceMap.getString("jLabel30.text")); // NOI18N
        jLabel30.setName("jLabel30"); // NOI18N

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        listaALI.setName("listaALI"); // NOI18N
        jScrollPane1.setViewportView(listaALI);

        jScrollPane2.setName("jScrollPane2"); // NOI18N

        listaAIE.setName("listaAIE"); // NOI18N
        jScrollPane2.setViewportView(listaAIE);

        btnExcluirAIE.setText(resourceMap.getString("btnExcluirAIE.text")); // NOI18N
        btnExcluirAIE.setName("btnExcluirAIE"); // NOI18N
        btnExcluirAIE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluirAIE(evt);
            }
        });

        jLabel29.setText(resourceMap.getString("jLabel29.text")); // NOI18N
        jLabel29.setName("jLabel29"); // NOI18N

        btnExcluirALI.setText(resourceMap.getString("btnExcluirALI.text")); // NOI18N
        btnExcluirALI.setName("btnExcluirALI"); // NOI18N
        btnExcluirALI.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluirALI(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel29)
                    .addComponent(btnExcluirALI)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnExcluirAIE)
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel30))
                .addGap(10, 10, 10))
        );

        jPanel7Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jScrollPane1, jScrollPane2});

        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel29)
                    .addComponent(jLabel30))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel7Layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btnExcluirALI))
                    .addGroup(jPanel7Layout.createSequentialGroup()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btnExcluirAIE)))
                .addContainerGap())
        );

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel1.border.title"))); // NOI18N
        jPanel1.setName("jPanel1"); // NOI18N

        jLabel48.setText(resourceMap.getString("jLabel48.text")); // NOI18N
        jLabel48.setName("jLabel48"); // NOI18N

        jScrollPane13.setName("jScrollPane13"); // NOI18N

        listaALIExistente.setName("listaALIExistente"); // NOI18N
        listaALIExistente.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                listaALIExistenteValueChanged(evt);
            }
        });
        jScrollPane13.setViewportView(listaALIExistente);

        jLabel49.setText(resourceMap.getString("jLabel49.text")); // NOI18N
        jLabel49.setName("jLabel49"); // NOI18N

        jScrollPane14.setName("jScrollPane14"); // NOI18N

        listaAIEExistente.setName("listaAIEExistente"); // NOI18N
        jScrollPane14.setViewportView(listaAIEExistente);

        jLabel50.setText(resourceMap.getString("jLabel50.text")); // NOI18N
        jLabel50.setName("jLabel50"); // NOI18N

        jScrollPane15.setName("jScrollPane15"); // NOI18N

        listaALIRemovidas.setName("listaALIRemovidas"); // NOI18N
        jScrollPane15.setViewportView(listaALIRemovidas);

        jLabel51.setText(resourceMap.getString("jLabel51.text")); // NOI18N
        jLabel51.setName("jLabel51"); // NOI18N

        jScrollPane16.setName("jScrollPane16"); // NOI18N

        listaAIERemovidas.setName("listaAIERemovidas"); // NOI18N
        jScrollPane16.setViewportView(listaAIERemovidas);

        jLabel52.setText(resourceMap.getString("jLabel52.text")); // NOI18N
        jLabel52.setName("jLabel52"); // NOI18N

        txtTipoDadosALIAlterar.setName("txtTipoDadosALIAlterar"); // NOI18N

        jLabel53.setText(resourceMap.getString("jLabel53.text")); // NOI18N
        jLabel53.setName("jLabel53"); // NOI18N

        txtTipoRegistroALIAlterar.setName("txtTipoRegistroALIAlterar"); // NOI18N

        btnAlterarALI.setText(resourceMap.getString("btnAlterarALI.text")); // NOI18N
        btnAlterarALI.setName("btnAlterarALI"); // NOI18N

        btnRemoverALI.setText(resourceMap.getString("btnRemoverALI.text")); // NOI18N
        btnRemoverALI.setName("btnRemoverALI"); // NOI18N

        btnVoltarALI.setText(resourceMap.getString("btnVoltarALI.text")); // NOI18N
        btnVoltarALI.setName("btnVoltarALI"); // NOI18N

        btnVoltarAIE.setText(resourceMap.getString("btnVoltarAIE.text")); // NOI18N
        btnVoltarAIE.setName("btnVoltarAIE"); // NOI18N

        btnRemoverAIE.setText(resourceMap.getString("btnRemoverAIE.text")); // NOI18N
        btnRemoverAIE.setName("btnRemoverAIE"); // NOI18N

        btnAlterarAIE.setText(resourceMap.getString("btnAlterarAIE.text")); // NOI18N
        btnAlterarAIE.setName("btnAlterarAIE"); // NOI18N

        txtTipoDadosAIEAlterar.setName("txtTipoDadosAIEAlterar"); // NOI18N

        jLabel54.setText(resourceMap.getString("jLabel54.text")); // NOI18N
        jLabel54.setName("jLabel54"); // NOI18N

        jLabel55.setText(resourceMap.getString("jLabel55.text")); // NOI18N
        jLabel55.setName("jLabel55"); // NOI18N

        txtTipoRegistroAIEAlterar.setName("txtTipoRegistroAIEAlterar"); // NOI18N

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel48)
                    .addComponent(jLabel49)
                    .addComponent(jScrollPane14, 0, 0, Short.MAX_VALUE)
                    .addComponent(jScrollPane13, javax.swing.GroupLayout.PREFERRED_SIZE, 210, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel52)
                            .addComponent(txtTipoDadosALIAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel53)
                            .addComponent(txtTipoRegistroALIAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(btnAlterarALI, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                    .addComponent(btnRemoverALI, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                    .addComponent(btnVoltarALI, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel54)
                            .addComponent(txtTipoDadosAIEAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel55)
                            .addComponent(txtTipoRegistroAIEAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(btnAlterarAIE, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                    .addComponent(btnRemoverAIE, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                    .addComponent(btnVoltarAIE, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel51)
                    .addComponent(jScrollPane15, javax.swing.GroupLayout.DEFAULT_SIZE, 210, Short.MAX_VALUE)
                    .addComponent(jLabel50)
                    .addComponent(jScrollPane16, 0, 0, Short.MAX_VALUE))
                .addGap(158, 158, 158))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel48)
                            .addComponent(jLabel50))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane13, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel49)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane14, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jScrollPane15, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
                        .addGap(11, 11, 11)
                        .addComponent(jLabel51)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane16, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)))
                .addGap(108, 108, 108))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(39, 39, 39)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel52)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtTipoDadosALIAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(txtTipoRegistroALIAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel53))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnAlterarALI)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnRemoverALI)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnVoltarALI)
                .addGap(55, 55, 55)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel54)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtTipoDadosAIEAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(txtTipoRegistroAIEAlterar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel55))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnAlterarAIE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnRemoverAIE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnVoltarAIE)
                .addContainerGap(118, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout painelFuncoesDadosLayout = new javax.swing.GroupLayout(painelFuncoesDados);
        painelFuncoesDados.setLayout(painelFuncoesDadosLayout);
        painelFuncoesDadosLayout.setHorizontalGroup(
            painelFuncoesDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelFuncoesDadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelFuncoesDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, painelFuncoesDadosLayout.createSequentialGroup()
                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(332, Short.MAX_VALUE))
        );
        painelFuncoesDadosLayout.setVerticalGroup(
            painelFuncoesDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelFuncoesDadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelFuncoesDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jPanel6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel7, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        tabPanelNovoProjeto.addTab(resourceMap.getString("painelFuncoesDados.TabConstraints.tabTitle"), painelFuncoesDados); // NOI18N

        painelFuncoesTransacionais.setName("painelFuncoesTransacionais"); // NOI18N

        jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel8.border.title"))); // NOI18N
        jPanel8.setName("jPanel8"); // NOI18N

        btnGroupFuncoesTransacionais.add(jRadioButton4);
        jRadioButton4.setSelected(true);
        jRadioButton4.setText(resourceMap.getString("jRadioButton4.text")); // NOI18N
        jRadioButton4.setName("jRadioButton4"); // NOI18N
        jRadioButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton4ActionPerformed(evt);
            }
        });

        btnGroupFuncoesTransacionais.add(jRadioButton3);
        jRadioButton3.setText(resourceMap.getString("jRadioButton3.text")); // NOI18N
        jRadioButton3.setName("jRadioButton3"); // NOI18N
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton3ActionPerformed(evt);
            }
        });

        jLabel10.setText(resourceMap.getString("jLabel10.text")); // NOI18N
        jLabel10.setName("jLabel10"); // NOI18N

        txtArquivoReferenciadoFuncaoTransacional.setName("txtArquivoReferenciadoFuncaoTransacional"); // NOI18N

        jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N
        jLabel7.setName("jLabel7"); // NOI18N

        jLabel8.setText(resourceMap.getString("jLabel8.text")); // NOI18N
        jLabel8.setName("jLabel8"); // NOI18N

        jButton9.setText(resourceMap.getString("jButton9.text")); // NOI18N
        jButton9.setName("jButton9"); // NOI18N
        jButton9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                adicionarFuncaoTransacional(evt);
            }
        });

        jLabel9.setText(resourceMap.getString("jLabel9.text")); // NOI18N
        jLabel9.setName("jLabel9"); // NOI18N

        txtNomeFuncaoTransacional.setName("txtNomeFuncaoTransacional"); // NOI18N

        btnGroupFuncoesTransacionais.add(jRadioButton5);
        jRadioButton5.setText(resourceMap.getString("jRadioButton5.text")); // NOI18N
        jRadioButton5.setName("jRadioButton5"); // NOI18N
        jRadioButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton5ActionPerformed(evt);
            }
        });

        txtTipoDadoFuncaoTransacional.setName("txtTipoDadoFuncaoTransacional"); // NOI18N

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(txtNomeFuncaoTransacional, javax.swing.GroupLayout.PREFERRED_SIZE, 201, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel8Layout.createSequentialGroup()
                        .addComponent(jRadioButton4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton5))
                    .addComponent(jLabel10)
                    .addComponent(txtTipoDadoFuncaoTransacional, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8)
                    .addComponent(jLabel7)
                    .addComponent(txtArquivoReferenciadoFuncaoTransacional, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton9)
                    .addComponent(jLabel9))
                .addContainerGap())
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel9)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtNomeFuncaoTransacional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel10)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jRadioButton3)
                    .addComponent(jRadioButton4)
                    .addComponent(jRadioButton5))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel8)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtTipoDadoFuncaoTransacional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel7)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtArquivoReferenciadoFuncaoTransacional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton9))
        );

        jPanel9.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel9.border.title"))); // NOI18N
        jPanel9.setName("jPanel9"); // NOI18N

        jLabel31.setText(resourceMap.getString("jLabel31.text")); // NOI18N
        jLabel31.setName("jLabel31"); // NOI18N

        jScrollPane5.setName("jScrollPane5"); // NOI18N

        listEE.setName("listEE"); // NOI18N
        jScrollPane5.setViewportView(listEE);

        jScrollPane4.setName("jScrollPane4"); // NOI18N

        listSE.setName("listSE"); // NOI18N
        jScrollPane4.setViewportView(listSE);

        btnExcluirEE.setText(resourceMap.getString("btnExcluirEE.text")); // NOI18N
        btnExcluirEE.setName("btnExcluirEE"); // NOI18N
        btnExcluirEE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exculirEE(evt);
            }
        });

        btnExcluirCE.setText(resourceMap.getString("btnExcluirCE.text")); // NOI18N
        btnExcluirCE.setName("btnExcluirCE"); // NOI18N
        btnExcluirCE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluirCE(evt);
            }
        });

        jScrollPane3.setName("jScrollPane3"); // NOI18N

        listCE.setName("listCE"); // NOI18N
        jScrollPane3.setViewportView(listCE);

        bntExcluirSE.setText(resourceMap.getString("bntExcluirSE.text")); // NOI18N
        bntExcluirSE.setName("bntExcluirSE"); // NOI18N
        bntExcluirSE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluirSE(evt);
            }
        });

        jLabel33.setText(resourceMap.getString("jLabel33.text")); // NOI18N
        jLabel33.setName("jLabel33"); // NOI18N

        jLabel32.setText(resourceMap.getString("jLabel32.text")); // NOI18N
        jLabel32.setName("jLabel32"); // NOI18N

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(bntExcluirSE)
                    .addComponent(jLabel31)
                    .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 219, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnExcluirCE)
                    .addComponent(jLabel32))
                .addGap(6, 6, 6)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel33)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 230, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnExcluirEE))
                .addContainerGap())
        );
        jPanel9Layout.setVerticalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel31)
                    .addComponent(jLabel32)
                    .addComponent(jLabel33))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)
                    .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(bntExcluirSE)
                    .addComponent(btnExcluirCE)
                    .addComponent(btnExcluirEE))
                .addContainerGap())
        );

        javax.swing.GroupLayout painelFuncoesTransacionaisLayout = new javax.swing.GroupLayout(painelFuncoesTransacionais);
        painelFuncoesTransacionais.setLayout(painelFuncoesTransacionaisLayout);
        painelFuncoesTransacionaisLayout.setHorizontalGroup(
            painelFuncoesTransacionaisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelFuncoesTransacionaisLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(82, Short.MAX_VALUE))
        );
        painelFuncoesTransacionaisLayout.setVerticalGroup(
            painelFuncoesTransacionaisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelFuncoesTransacionaisLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(painelFuncoesTransacionaisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(531, Short.MAX_VALUE))
        );

        painelFuncoesTransacionaisLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel8, jPanel9});

        jPanel8.getAccessibleContext().setAccessibleName(resourceMap.getString("jPanel8.AccessibleContext.accessibleName")); // NOI18N

        tabPanelNovoProjeto.addTab(resourceMap.getString("painelFuncoesTransacionais.TabConstraints.tabTitle"), painelFuncoesTransacionais); // NOI18N

        painelCaracteristicasGerais.setName("painelCaracteristicasGerais"); // NOI18N

        jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel10.border.title"))); // NOI18N
        jPanel10.setName("jPanel10"); // NOI18N

        jLabel22.setText(resourceMap.getString("jLabel22.text")); // NOI18N
        jLabel22.setName("jLabel22"); // NOI18N

        jLabel13.setText(resourceMap.getString("jLabel13.text")); // NOI18N
        jLabel13.setName("jLabel13"); // NOI18N

        jLabel18.setText(resourceMap.getString("jLabel18.text")); // NOI18N
        jLabel18.setName("jLabel18"); // NOI18N

        jLabel16.setText(resourceMap.getString("jLabel16.text")); // NOI18N
        jLabel16.setName("jLabel16"); // NOI18N

        cboUtilizacaoDoEquipamento.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboUtilizacaoDoEquipamento.setName("cboUtilizacaoDoEquipamento"); // NOI18N

        jLabel26.setText(resourceMap.getString("jLabel26.text")); // NOI18N
        jLabel26.setName("jLabel26"); // NOI18N

        cboFacilidadeDeMudancas.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboFacilidadeDeMudancas.setName("cboFacilidadeDeMudancas"); // NOI18N

        jLabel23.setText(resourceMap.getString("jLabel23.text")); // NOI18N
        jLabel23.setName("jLabel23"); // NOI18N

        btnCalcularProjeto.setText(resourceMap.getString("btnCalcularProjeto.text")); // NOI18N
        btnCalcularProjeto.setName("btnCalcularProjeto"); // NOI18N
        btnCalcularProjeto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                calcularProjeto(evt);
            }
        });

        jLabel21.setText(resourceMap.getString("jLabel21.text")); // NOI18N
        jLabel21.setName("jLabel21"); // NOI18N

        cboAtualizacaoOnline.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboAtualizacaoOnline.setName("cboAtualizacaoOnline"); // NOI18N

        jLabel15.setText(resourceMap.getString("jLabel15.text")); // NOI18N
        jLabel15.setName("jLabel15"); // NOI18N

        jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
        jSeparator1.setName("jSeparator1"); // NOI18N

        jLabel17.setText(resourceMap.getString("jLabel17.text")); // NOI18N
        jLabel17.setName("jLabel17"); // NOI18N

        jLabel12.setFont(resourceMap.getFont("jLabel12.font")); // NOI18N
        jLabel12.setText(resourceMap.getString("jLabel12.text")); // NOI18N
        jLabel12.setName("jLabel12"); // NOI18N

        jLabel24.setText(resourceMap.getString("jLabel24.text")); // NOI18N
        jLabel24.setName("jLabel24"); // NOI18N

        jLabel11.setFont(resourceMap.getFont("jLabel12.font")); // NOI18N
        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N

        cboFacilidadeInstalacao.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboFacilidadeInstalacao.setName("cboFacilidadeInstalacao"); // NOI18N

        cboEntradaDeDadosOnline.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboEntradaDeDadosOnline.setName("cboEntradaDeDadosOnline"); // NOI18N

        cboComplexidadeDeProcessamento.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboComplexidadeDeProcessamento.setName("cboComplexidadeDeProcessamento"); // NOI18N

        cboMultiplasLocalidades.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboMultiplasLocalidades.setName("cboMultiplasLocalidades"); // NOI18N

        cboProcessamentoDeDados.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboProcessamentoDeDados.setName("cboProcessamentoDeDados"); // NOI18N

        jLabel28.setFont(resourceMap.getFont("jLabel27.font")); // NOI18N
        jLabel28.setText(resourceMap.getString("jLabel28.text")); // NOI18N
        jLabel28.setName("jLabel28"); // NOI18N

        jLabel14.setText(resourceMap.getString("jLabel14.text")); // NOI18N
        jLabel14.setName("jLabel14"); // NOI18N

        jLabel19.setText(resourceMap.getString("jLabel19.text")); // NOI18N
        jLabel19.setName("jLabel19"); // NOI18N

        cboEficienciaDoUsuarioFinal.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboEficienciaDoUsuarioFinal.setName("cboEficienciaDoUsuarioFinal"); // NOI18N

        jLabel27.setFont(resourceMap.getFont("jLabel27.font")); // NOI18N
        jLabel27.setText(resourceMap.getString("jLabel27.text")); // NOI18N
        jLabel27.setName("jLabel27"); // NOI18N

        cboDesempenho.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboDesempenho.setName("cboDesempenho"); // NOI18N

        cboReutilizacao.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboReutilizacao.setName("cboReutilizacao"); // NOI18N

        cboVolumeDeTransacoes.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboVolumeDeTransacoes.setName("cboVolumeDeTransacoes"); // NOI18N

        cboComunicacaoDeDados.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboComunicacaoDeDados.setName("cboComunicacaoDeDados"); // NOI18N

        cboFacilidadeOperacao.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Sem Influência", "Baixa", "Moderada", "Média", "Significativa", "Grande" }));
        cboFacilidadeOperacao.setName("cboFacilidadeOperacao"); // NOI18N

        jLabel25.setText(resourceMap.getString("jLabel25.text")); // NOI18N
        jLabel25.setName("jLabel25"); // NOI18N

        jLabel20.setText(resourceMap.getString("jLabel20.text")); // NOI18N
        jLabel20.setName("jLabel20"); // NOI18N

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel11)
                    .addComponent(jLabel13)
                    .addComponent(jLabel14)
                    .addComponent(jLabel15)
                    .addComponent(jLabel17)
                    .addComponent(jLabel18)
                    .addComponent(jLabel16)
                    .addComponent(jLabel19))
                .addGap(57, 57, 57)
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(cboEficienciaDoUsuarioFinal, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboEntradaDeDadosOnline, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboVolumeDeTransacoes, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboUtilizacaoDoEquipamento, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboDesempenho, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboProcessamentoDeDados, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboComunicacaoDeDados, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel12))
                .addGap(29, 29, 29)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel26)
                    .addComponent(jLabel25)
                    .addComponent(jLabel21)
                    .addComponent(jLabel22)
                    .addComponent(jLabel23)
                    .addComponent(jLabel20)
                    .addComponent(jLabel24)
                    .addComponent(jLabel28))
                .addGap(57, 57, 57)
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel27)
                    .addComponent(cboMultiplasLocalidades, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboFacilidadeOperacao, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboFacilidadeInstalacao, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboReutilizacao, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboComplexidadeDeProcessamento, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cboAtualizacaoOnline, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(btnCalcularProjeto)
                        .addComponent(cboFacilidadeDeMudancas, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        jPanel10Layout.setVerticalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel10Layout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jLabel27)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel26)
                            .addComponent(cboAtualizacaoOnline, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel25)
                            .addComponent(cboComplexidadeDeProcessamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel21)
                            .addComponent(cboReutilizacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel22)
                            .addComponent(cboFacilidadeInstalacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel23)
                            .addComponent(cboFacilidadeOperacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel20)
                            .addComponent(cboMultiplasLocalidades, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel24)
                            .addComponent(cboFacilidadeDeMudancas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel10Layout.createSequentialGroup()
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel11)
                            .addComponent(jLabel12)
                            .addComponent(jLabel28))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(jPanel10Layout.createSequentialGroup()
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel13)
                                    .addComponent(cboComunicacaoDeDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel14)
                                    .addComponent(cboProcessamentoDeDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel15)
                                    .addComponent(cboDesempenho, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel17)
                                    .addComponent(cboUtilizacaoDoEquipamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel18)
                                    .addComponent(cboVolumeDeTransacoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel16)
                                    .addComponent(cboEntradaDeDadosOnline, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel19)
                                    .addComponent(cboEficienciaDoUsuarioFinal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))))
                .addGap(18, 18, 18)
                .addComponent(btnCalcularProjeto)
                .addContainerGap())
        );

        javax.swing.GroupLayout painelCaracteristicasGeraisLayout = new javax.swing.GroupLayout(painelCaracteristicasGerais);
        painelCaracteristicasGerais.setLayout(painelCaracteristicasGeraisLayout);
        painelCaracteristicasGeraisLayout.setHorizontalGroup(
            painelCaracteristicasGeraisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelCaracteristicasGeraisLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(209, Short.MAX_VALUE))
        );
        painelCaracteristicasGeraisLayout.setVerticalGroup(
            painelCaracteristicasGeraisLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(painelCaracteristicasGeraisLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(542, 542, 542))
        );

        tabPanelNovoProjeto.addTab(resourceMap.getString("painelCaracteristicasGerais.TabConstraints.tabTitle"), painelCaracteristicasGerais); // NOI18N

        jPanel5.setName("jPanel5"); // NOI18N

        jScrollPane6.setName("jScrollPane6"); // NOI18N

        panelRelatorio.setName("panelRelatorio"); // NOI18N

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel3.border.title"))); // NOI18N
        jPanel3.setName("jPanel3"); // NOI18N

        jLabel34.setText(resourceMap.getString("jLabel34.text")); // NOI18N
        jLabel34.setName("jLabel34"); // NOI18N

        jLabel35.setText(resourceMap.getString("jLabel35.text")); // NOI18N
        jLabel35.setName("jLabel35"); // NOI18N

        jScrollPane9.setName("jScrollPane9"); // NOI18N

        listaRelatorioAIE.setName("listaRelatorioAIE"); // NOI18N
        jScrollPane9.setViewportView(listaRelatorioAIE);

        jScrollPane7.setName("jScrollPane7"); // NOI18N

        listaRelatorioALI.setName("listaRelatorioALI"); // NOI18N
        jScrollPane7.setViewportView(listaRelatorioALI);

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel34)
                    .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel35))
                .addContainerGap(274, Short.MAX_VALUE))
        );

        jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jScrollPane7, jScrollPane9});

        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel35)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 197, Short.MAX_VALUE))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel34)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 197, Short.MAX_VALUE)))
                .addContainerGap())
        );

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel4.border.title"))); // NOI18N
        jPanel4.setName("jPanel4"); // NOI18N

        jLabel36.setText(resourceMap.getString("jLabel36.text")); // NOI18N
        jLabel36.setName("jLabel36"); // NOI18N

        jLabel37.setText(resourceMap.getString("jLabel37.text")); // NOI18N
        jLabel37.setName("jLabel37"); // NOI18N

        jScrollPane8.setName("jScrollPane8"); // NOI18N

        listaRelatorioSE.setName("listaRelatorioSE"); // NOI18N
        jScrollPane8.setViewportView(listaRelatorioSE);

        jScrollPane10.setName("jScrollPane10"); // NOI18N

        listaRelatorioEE.setName("listaRelatorioEE"); // NOI18N
        jScrollPane10.setViewportView(listaRelatorioEE);

        jLabel38.setText(resourceMap.getString("jLabel38.text")); // NOI18N
        jLabel38.setName("jLabel38"); // NOI18N

        jScrollPane11.setName("jScrollPane11"); // NOI18N

        listaRelatorioCE.setName("listaRelatorioCE"); // NOI18N
        jScrollPane11.setViewportView(listaRelatorioCE);

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel36)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 254, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel37)
                    .addComponent(jScrollPane11, javax.swing.GroupLayout.PREFERRED_SIZE, 254, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel38)
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(19, 19, 19))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel36)
                    .addComponent(jLabel37)
                    .addComponent(jLabel38, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
                    .addComponent(jScrollPane11, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE))
                .addContainerGap())
        );

        jLabel39.setText(resourceMap.getString("jLabel39.text")); // NOI18N
        jLabel39.setName("jLabel39"); // NOI18N

        txtRelatorioPFB.setEditable(false);
        txtRelatorioPFB.setText(resourceMap.getString("txtRelatorioPFB.text")); // NOI18N
        txtRelatorioPFB.setName("txtRelatorioPFB"); // NOI18N

        jScrollPane12.setName("jScrollPane12"); // NOI18N

        tableInfluencia.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Característica", "Nível de influência"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.Object.class
            };
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tableInfluencia.setName("tableInfluencia"); // NOI18N
        jScrollPane12.setViewportView(tableInfluencia);

        jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel11.border.title"))); // NOI18N
        jPanel11.setName("jPanel11"); // NOI18N

        txtRelatorioPFA.setEditable(false);
        txtRelatorioPFA.setName("txtRelatorioPFA"); // NOI18N

        txtRelatorioNI.setEditable(false);
        txtRelatorioNI.setName("txtRelatorioNI"); // NOI18N

        txtRelatorioFA.setEditable(false);
        txtRelatorioFA.setName("txtRelatorioFA"); // NOI18N

        jLabel40.setText(resourceMap.getString("jLabel40.text")); // NOI18N
        jLabel40.setName("jLabel40"); // NOI18N

        jLabel42.setText(resourceMap.getString("jLabel42.text")); // NOI18N
        jLabel42.setName("jLabel42"); // NOI18N

        txtRelatorioPF.setEditable(false);
        txtRelatorioPF.setName("txtRelatorioPF"); // NOI18N

        jLabel43.setText(resourceMap.getString("jLabel43.text")); // NOI18N
        jLabel43.setName("jLabel43"); // NOI18N

        jLabel44.setText(resourceMap.getString("jLabel44.text")); // NOI18N
        jLabel44.setName("jLabel44"); // NOI18N

        btnSalvarProjeto.setText(resourceMap.getString("btnSalvarProjeto.text")); // NOI18N
        btnSalvarProjeto.setName("btnSalvarProjeto"); // NOI18N
        btnSalvarProjeto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                salvarProjeto(evt);
            }
        });

        txtRelatorioPrazo.setBackground(resourceMap.getColor("txtRelatorioPrazo.background")); // NOI18N
        txtRelatorioPrazo.setEditable(false);
        txtRelatorioPrazo.setName("txtRelatorioPrazo"); // NOI18N

        jLabel41.setText(resourceMap.getString("jLabel41.text")); // NOI18N
        jLabel41.setName("jLabel41"); // NOI18N

        jLabel46.setForeground(resourceMap.getColor("jLabel46.foreground")); // NOI18N
        jLabel46.setText(resourceMap.getString("jLabel46.text")); // NOI18N
        jLabel46.setName("jLabel46"); // NOI18N

        javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
        jPanel11.setLayout(jPanel11Layout);
        jPanel11Layout.setHorizontalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btnSalvarProjeto)
                    .addGroup(jPanel11Layout.createSequentialGroup()
                        .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout.createSequentialGroup()
                                .addComponent(jLabel44)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(txtRelatorioPrazo, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout.createSequentialGroup()
                                .addComponent(jLabel41)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(txtRelatorioFA, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout.createSequentialGroup()
                                .addComponent(jLabel40)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(txtRelatorioNI, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout.createSequentialGroup()
                                .addComponent(jLabel43)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(txtRelatorioPF, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel11Layout.createSequentialGroup()
                                .addComponent(jLabel42)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtRelatorioPFA, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel46)))
                .addContainerGap(78, Short.MAX_VALUE))
        );
        jPanel11Layout.setVerticalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel40)
                    .addComponent(txtRelatorioNI, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel41)
                    .addComponent(txtRelatorioFA, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel42)
                    .addComponent(txtRelatorioPFA, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel43)
                    .addComponent(txtRelatorioPF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel44)
                    .addComponent(txtRelatorioPrazo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel46))
                .addGap(18, 18, 18)
                .addComponent(btnSalvarProjeto, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE)
                .addContainerGap())
        );

        jLabel45.setFont(resourceMap.getFont("jLabel45.font")); // NOI18N
        jLabel45.setText(resourceMap.getString("jLabel45.text")); // NOI18N
        jLabel45.setName("jLabel45"); // NOI18N

        txtRelatorioNomeProjeto.setEditable(false);
        txtRelatorioNomeProjeto.setFont(resourceMap.getFont("txtRelatorioNomeProjeto.font")); // NOI18N
        txtRelatorioNomeProjeto.setText(resourceMap.getString("txtRelatorioNomeProjeto.text")); // NOI18N
        txtRelatorioNomeProjeto.setName("txtRelatorioNomeProjeto"); // NOI18N

        javax.swing.GroupLayout panelRelatorioLayout = new javax.swing.GroupLayout(panelRelatorio);
        panelRelatorio.setLayout(panelRelatorioLayout);
        panelRelatorioLayout.setHorizontalGroup(
            panelRelatorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelRelatorioLayout.createSequentialGroup()
                .addGroup(panelRelatorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panelRelatorioLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(panelRelatorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(panelRelatorioLayout.createSequentialGroup()
                                .addGap(14, 14, 14)
                                .addComponent(jLabel39)
                                .addGap(26, 26, 26)
                                .addComponent(txtRelatorioPFB, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, 818, Short.MAX_VALUE)
                            .addComponent(jScrollPane12)
                            .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(panelRelatorioLayout.createSequentialGroup()
                        .addGap(22, 22, 22)
                        .addComponent(jLabel45)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtRelatorioNomeProjeto, javax.swing.GroupLayout.PREFERRED_SIZE, 408, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(795, Short.MAX_VALUE))
        );
        panelRelatorioLayout.setVerticalGroup(
            panelRelatorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelRelatorioLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelRelatorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel45)
                    .addComponent(txtRelatorioNomeProjeto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(panelRelatorioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel39)
                    .addComponent(txtRelatorioPFB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(17, 17, 17)
                .addComponent(jScrollPane12, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(127, Short.MAX_VALUE))
        );

        jScrollPane6.setViewportView(panelRelatorio);

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 1047, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 675, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(107, Short.MAX_VALUE))
        );

        tabPanelNovoProjeto.addTab(resourceMap.getString("jPanel5.TabConstraints.tabTitle"), jPanel5); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(tabPanelNovoProjeto, javax.swing.GroupLayout.DEFAULT_SIZE, 1072, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(tabPanelNovoProjeto, javax.swing.GroupLayout.DEFAULT_SIZE, 810, Short.MAX_VALUE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void adicionarFuncaoDados(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_adicionarFuncaoDados

        FuncaoDados f = null;

        if (txtNomeFuncaoDados.getText().trim().equals("")) {
            JOptionPane.showMessageDialog(this, "Forneça um nome para a função", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        }

        try {
            if (chaveGrupoDados == 1) {
                f = new ArquivoLogicoInterno();
                f.setNome(txtNomeFuncaoDados.getText());
                f.setTipoDados(FormatUtil.parsePositiveInteger(txtTipoDadosFuncaoDados.getText()));
                f.setTipoRegistro(FormatUtil.parsePositiveInteger(txtTipoRegistroFuncaoDados.getText()));
                MyFPAUtil.adicionaFuncao(f, listaFuncoesALIDados);
                listaALI.setListData(getModelFromList(listaFuncoesALIDados));
            } else if (chaveGrupoDados == 2) {
                f = new ArquivoInterfaceExterna();
                f.setNome(txtNomeFuncaoDados.getText());
                f.setTipoDados(FormatUtil.parsePositiveInteger(txtTipoDadosFuncaoDados.getText()));
                f.setTipoRegistro(FormatUtil.parsePositiveInteger(txtTipoRegistroFuncaoDados.getText()));
                MyFPAUtil.adicionaFuncao(f, listaFuncoesAIEDados);
                listaAIE.setListData(getModelFromList(listaFuncoesAIEDados));
            }
        } catch (NumberFormatException ex) {
            JOptionPane.showMessageDialog(this, "Valor inválido: deve ser inteiro e maior que zero", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        } catch (MyFPAException ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage(), "Alerta", JOptionPane.WARNING_MESSAGE);
        }

    }//GEN-LAST:event_adicionarFuncaoDados

    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton1ActionPerformed
        chaveGrupoDados = 1;
    }//GEN-LAST:event_jRadioButton1ActionPerformed

    private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton2ActionPerformed
        chaveGrupoDados = 2;
    }//GEN-LAST:event_jRadioButton2ActionPerformed

    private void jRadioButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton4ActionPerformed
        chaveGrupoTransacionais = 1;
    }//GEN-LAST:event_jRadioButton4ActionPerformed

    private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton3ActionPerformed
        chaveGrupoTransacionais = 2;
    }//GEN-LAST:event_jRadioButton3ActionPerformed

    private void jRadioButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton5ActionPerformed
        chaveGrupoTransacionais = 3;
    }//GEN-LAST:event_jRadioButton5ActionPerformed

    private void adicionarFuncaoTransacional(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_adicionarFuncaoTransacional
        FuncaoTransacional f = null;

        if (txtNomeFuncaoTransacional.getText().trim().equals("")) {
            JOptionPane.showMessageDialog(this, "Forneça um nome para a função", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        }

        try {
            if (chaveGrupoTransacionais == 1) {
                f = new SaidaExterna();
                f.setNome(txtNomeFuncaoTransacional.getText());
                f.setTipoDados(FormatUtil.parsePositiveInteger(txtTipoDadoFuncaoTransacional.getText()));
                f.setArquivoReferenciado(FormatUtil.parsePositiveInteger(txtArquivoReferenciadoFuncaoTransacional.getText()));
                MyFPAUtil.adicionaFuncao(f, listaFuncoesSE);
                listSE.setListData(getModelFromList(listaFuncoesSE));
            } else if (chaveGrupoTransacionais == 2) {
                if (listaFuncoesAIEDados.isEmpty() && listaFuncoesALIDados.isEmpty()) {
                    JOptionPane.showMessageDialog(this, "Consultas Externas só podem ser cadastradas se houver ao menos uma função de dados cadastrada", "Alerta", JOptionPane.WARNING_MESSAGE);
                    return;
                }
                f = new ConsultaExterna();
                f.setNome(txtNomeFuncaoTransacional.getText());
                f.setTipoDados(FormatUtil.parsePositiveInteger(txtTipoDadoFuncaoTransacional.getText()));
                f.setArquivoReferenciado(FormatUtil.parsePositiveInteger(txtArquivoReferenciadoFuncaoTransacional.getText()));
                MyFPAUtil.adicionaFuncao(f, listaFuncoesCE);
                listCE.setListData(getModelFromList(listaFuncoesCE));
            } else if (chaveGrupoTransacionais == 3) {
                f = new EntradaExterna();
                f.setNome(txtNomeFuncaoTransacional.getText());
                f.setTipoDados(FormatUtil.parsePositiveInteger(txtTipoDadoFuncaoTransacional.getText()));
                f.setArquivoReferenciado(FormatUtil.parsePositiveInteger(txtArquivoReferenciadoFuncaoTransacional.getText()));
                MyFPAUtil.adicionaFuncao(f, listaFuncoesEE);
                listEE.setListData(getModelFromList(listaFuncoesEE));
            }
        } catch (NumberFormatException ex) {
            JOptionPane.showMessageDialog(this, "Valor inválido: deve ser inteiro e maior que zero", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        } catch (MyFPAException ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage(), "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        }
    }//GEN-LAST:event_adicionarFuncaoTransacional

    private void calcularProjeto(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_calcularProjeto

        if (txtNomeProjeto.getText().trim().equals("")) {
            JOptionPane.showMessageDialog(this, "Forneça um nome para o projeto", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        }

        projeto.setNome(txtNomeProjeto.getText());

        try {
            projeto.setPontoFuncao(FormatUtil.parsePositiveDouble(txtValorPontoFuncao.getText().replace(",", ".")));
        } catch (NumberFormatException ex) {
            JOptionPane.showMessageDialog(this, "Valor para o Ponto de Função inválido: deve ser um número positivo", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        }

        // Cria a lista de funções
        List<Funcao> listaFuncoes = new LinkedList<Funcao>();
        listaFuncoes.addAll(listaFuncoesALIDados);
        listaFuncoes.addAll(listaFuncoesAIEDados);
        listaFuncoes.addAll(listaFuncoesSE);
        listaFuncoes.addAll(listaFuncoesCE);
        listaFuncoes.addAll(listaFuncoesEE);

        if (listaFuncoes.isEmpty()) {
            JOptionPane.showMessageDialog(this, "O projeto deve possuir ao menos uma função", "Alerta", JOptionPane.WARNING_MESSAGE);
            return;
        }

        projeto.setListaFuncoes(listaFuncoes);
        System.out.println("Tamanho da lista de funções: " + listaFuncoes.size());

        // Cria o mapa das caracteristicas gerais
        Map<CaracteristicaGeral, NivelInfluencia> mapaCaracteristicas = new HashMap<CaracteristicaGeral, NivelInfluencia>();
        if (cboAtualizacaoOnline.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.ATUALIZACAO_ONLINE, EnumerationUtil.getNivelInfluenciaByValue(cboAtualizacaoOnline.getSelectedIndex()));
        }
        if (cboComplexidadeDeProcessamento.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.COMPLEXIDADE_DE_PROCESSAMENTO, EnumerationUtil.getNivelInfluenciaByValue(cboComplexidadeDeProcessamento.getSelectedIndex()));
        }
        if (cboComunicacaoDeDados.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.COMUNICACAO_DE_DADOS, EnumerationUtil.getNivelInfluenciaByValue(cboComunicacaoDeDados.getSelectedIndex()));
        }
        if (cboDesempenho.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.DESEMPENHO, EnumerationUtil.getNivelInfluenciaByValue(cboDesempenho.getSelectedIndex()));
        }
        if (cboEficienciaDoUsuarioFinal.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.EFICIENCIA_DO_USUARIO_FINAL, EnumerationUtil.getNivelInfluenciaByValue(cboEficienciaDoUsuarioFinal.getSelectedIndex()));
        }
        if (cboEntradaDeDadosOnline.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.ENTRADA_DE_DADOS_ONLINE, EnumerationUtil.getNivelInfluenciaByValue(cboEntradaDeDadosOnline.getSelectedIndex()));
        }
        if (cboFacilidadeDeMudancas.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.FACILIDADE_DE_MUDANCAS, EnumerationUtil.getNivelInfluenciaByValue(cboFacilidadeDeMudancas.getSelectedIndex()));
        }
        if (cboFacilidadeInstalacao.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.FACILIDADE_DE_INSTALACAO, EnumerationUtil.getNivelInfluenciaByValue(cboFacilidadeInstalacao.getSelectedIndex()));
        }
        if (cboFacilidadeOperacao.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.FACILIDADE_DE_OPERACAO, EnumerationUtil.getNivelInfluenciaByValue(cboFacilidadeOperacao.getSelectedIndex()));
        }
        if (cboMultiplasLocalidades.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.MULTIPLAS_LOCALIDADES, EnumerationUtil.getNivelInfluenciaByValue(cboMultiplasLocalidades.getSelectedIndex()));
        }
        if (cboProcessamentoDeDados.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.PROCESSAMENTO_DE_DADOS_DISTRIBUIDO, EnumerationUtil.getNivelInfluenciaByValue(cboProcessamentoDeDados.getSelectedIndex()));
        }
        if (cboReutilizacao.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.REUTILIZACAO, EnumerationUtil.getNivelInfluenciaByValue(cboReutilizacao.getSelectedIndex()));
        }
        if (cboUtilizacaoDoEquipamento.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.UTILIZACAO_DO_EQUIPAMENTO, EnumerationUtil.getNivelInfluenciaByValue(cboUtilizacaoDoEquipamento.getSelectedIndex()));
        }
        if (cboVolumeDeTransacoes.getSelectedIndex() > 0) {
            mapaCaracteristicas.put(CaracteristicaGeral.VOLUME_DE_TRANSACOES, EnumerationUtil.getNivelInfluenciaByValue(cboVolumeDeTransacoes.getSelectedIndex()));
        }
        projeto.setCaracteristicasGerais(mapaCaracteristicas);
        // Calcula o projeto
        projeto.calcularProjeto();
        // Envia o projeto para o relatório
        populaRelatorio();
    }//GEN-LAST:event_calcularProjeto

    private void excluirALI(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluirALI
        if (!listaALI.isSelectionEmpty()) {
            listaFuncoesALIDados.remove(listaALI.getSelectedIndex());
            listaALI.setListData(getModelFromList(listaFuncoesALIDados));
        }
    }//GEN-LAST:event_excluirALI

    private void excluirAIE(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluirAIE
        if (!listaAIE.isSelectionEmpty()) {
            listaFuncoesAIEDados.remove(listaAIE.getSelectedIndex());
            listaAIE.setListData(getModelFromList(listaFuncoesAIEDados));
        }
    }//GEN-LAST:event_excluirAIE

    private void excluirSE(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluirSE

        if (!listSE.isSelectionEmpty()) {
            listaFuncoesSE.remove(listSE.getSelectedIndex());
            listSE.setListData(getModelFromList(listaFuncoesSE));
        }
    }//GEN-LAST:event_excluirSE

    private void excluirCE(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluirCE
        if (!listCE.isSelectionEmpty()) {
            listaFuncoesCE.remove(listCE.getSelectedIndex());
            listCE.setListData(getModelFromList(listaFuncoesCE));
        }
    }//GEN-LAST:event_excluirCE

    private void exculirEE(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exculirEE
        if (!listEE.isSelectionEmpty()) {
            listaFuncoesEE.remove(listEE.getSelectedIndex());
            listEE.setListData(getModelFromList(listaFuncoesEE));
        }
    }//GEN-LAST:event_exculirEE

    private void salvarProjeto(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_salvarProjeto
        CalculadorFPAView.listaProjetos.remove(projetoParaSalvar);
        CalculadorFPAView.listaProjetos.add(projeto);
        JOptionPane.showMessageDialog(this, "Projeto salvo com sucesso!");
        CalculadorFPAView.frameView.showApp(new ConsultaProjetosView());
    }//GEN-LAST:event_salvarProjeto

    private void listaALIExistenteValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_listaALIExistenteValueChanged
         FuncaoDados f = (FuncaoDados)listaFuncoesALIExistentes.get(listaALIExistente.getSelectedIndex());
         txtTipoDadosALIAlterar.setText(f.getTipoDados()+"");
         txtTipoRegistroALIAlterar.setText(f.getTipoRegistro()+"");
    }//GEN-LAST:event_listaALIExistenteValueChanged

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton bntExcluirSE;
    private javax.swing.JButton btnAdicionarFuncaoDados;
    private javax.swing.JButton btnAlterarAIE;
    private javax.swing.JButton btnAlterarALI;
    private javax.swing.JButton btnCalcularProjeto;
    private javax.swing.JButton btnExcluirAIE;
    private javax.swing.JButton btnExcluirALI;
    private javax.swing.JButton btnExcluirCE;
    private javax.swing.JButton btnExcluirEE;
    private javax.swing.ButtonGroup btnGroupFuncoesDados;
    private javax.swing.ButtonGroup btnGroupFuncoesTransacionais;
    private javax.swing.JButton btnRemoverAIE;
    private javax.swing.JButton btnRemoverALI;
    private javax.swing.JButton btnSalvarProjeto;
    private javax.swing.JButton btnVoltarAIE;
    private javax.swing.JButton btnVoltarALI;
    private javax.swing.JComboBox cboAtualizacaoOnline;
    private javax.swing.JComboBox cboComplexidadeDeProcessamento;
    private javax.swing.JComboBox cboComunicacaoDeDados;
    private javax.swing.JComboBox cboDesempenho;
    private javax.swing.JComboBox cboEficienciaDoUsuarioFinal;
    private javax.swing.JComboBox cboEntradaDeDadosOnline;
    private javax.swing.JComboBox cboFacilidadeDeMudancas;
    private javax.swing.JComboBox cboFacilidadeInstalacao;
    private javax.swing.JComboBox cboFacilidadeOperacao;
    private javax.swing.JComboBox cboMultiplasLocalidades;
    private javax.swing.JComboBox cboProcessamentoDeDados;
    private javax.swing.JComboBox cboReutilizacao;
    private javax.swing.JComboBox cboUtilizacaoDoEquipamento;
    private javax.swing.JComboBox cboVolumeDeTransacoes;
    private javax.swing.JButton jButton9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel41;
    private javax.swing.JLabel jLabel42;
    private javax.swing.JLabel jLabel43;
    private javax.swing.JLabel jLabel44;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel46;
    private javax.swing.JLabel jLabel47;
    private javax.swing.JLabel jLabel48;
    private javax.swing.JLabel jLabel49;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel50;
    private javax.swing.JLabel jLabel51;
    private javax.swing.JLabel jLabel52;
    private javax.swing.JLabel jLabel53;
    private javax.swing.JLabel jLabel54;
    private javax.swing.JLabel jLabel55;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JRadioButton jRadioButton3;
    private javax.swing.JRadioButton jRadioButton4;
    private javax.swing.JRadioButton jRadioButton5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane12;
    private javax.swing.JScrollPane jScrollPane13;
    private javax.swing.JScrollPane jScrollPane14;
    private javax.swing.JScrollPane jScrollPane15;
    private javax.swing.JScrollPane jScrollPane16;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JList listCE;
    private javax.swing.JList listEE;
    private javax.swing.JList listSE;
    private javax.swing.JList listaAIE;
    private javax.swing.JList listaAIEExistente;
    private javax.swing.JList listaAIERemovidas;
    private javax.swing.JList listaALI;
    private javax.swing.JList listaALIExistente;
    private javax.swing.JList listaALIRemovidas;
    private javax.swing.JList listaRelatorioAIE;
    private javax.swing.JList listaRelatorioALI;
    private javax.swing.JList listaRelatorioCE;
    private javax.swing.JList listaRelatorioEE;
    private javax.swing.JList listaRelatorioSE;
    private javax.swing.JPanel painelCaracteristicasGerais;
    private javax.swing.JPanel painelFuncoesDados;
    private javax.swing.JPanel painelFuncoesTransacionais;
    private javax.swing.JPanel painelGeral;
    private javax.swing.JPanel panelRelatorio;
    private javax.swing.JTabbedPane tabPanelNovoProjeto;
    private javax.swing.JTable tableInfluencia;
    private javax.swing.JTextField txtArquivoReferenciadoFuncaoTransacional;
    private javax.swing.JTextField txtFuncoesConversao;
    private javax.swing.JTextField txtNomeFuncaoDados;
    private javax.swing.JTextField txtNomeFuncaoTransacional;
    private javax.swing.JTextField txtNomeProjeto;
    private javax.swing.JTextField txtRelatorioFA;
    private javax.swing.JTextField txtRelatorioNI;
    private javax.swing.JTextField txtRelatorioNomeProjeto;
    private javax.swing.JTextField txtRelatorioPF;
    private javax.swing.JTextField txtRelatorioPFA;
    private javax.swing.JTextField txtRelatorioPFB;
    private javax.swing.JTextField txtRelatorioPrazo;
    private javax.swing.JTextField txtTipoDadoFuncaoTransacional;
    private javax.swing.JTextField txtTipoDadosAIEAlterar;
    private javax.swing.JTextField txtTipoDadosALIAlterar;
    private javax.swing.JTextField txtTipoDadosFuncaoDados;
    private javax.swing.JTextField txtTipoRegistroAIEAlterar;
    private javax.swing.JTextField txtTipoRegistroALIAlterar;
    private javax.swing.JTextField txtTipoRegistroFuncaoDados;
    private javax.swing.JTextField txtValorPontoFuncao;
    // End of variables declaration//GEN-END:variables
}
